home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
hity wydania
/
Ubuntu 9.10 PL
/
karmelkowy-koliberek-desktop-9.10-i386-PL.iso
/
casper
/
filesystem.squashfs
/
etc
/
apparmor
/
functions
next >
Wrap
Text File
|
2009-10-17
|
2KB
|
79 lines
#!/bin/sh
# ----------------------------------------------------------------------
# Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
# NOVELL (All rights reserved)
# Copyright (c) 2008, 2009 Canonical, Ltd.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public
# License published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, contact Novell, Inc.
# ----------------------------------------------------------------------
# Authors:
# Kees Cook <kees@ubuntu.com>
#
# /etc/apparmor/functions
#
# Note: this is expected to work in the initramfs and without /usr mounted.
PROFILES="/etc/apparmor.d"
PARSER="/sbin/apparmor_parser"
SECURITYFS="/sys/kernel/security"
export AA_SFS="$SECURITYFS/apparmor"
# Suppress warnings when booting in quiet mode
quiet_arg=""
[ "${QUIET:-no}" = yes ] && quiet_arg="-q"
[ "${quiet:-n}" = y ] && quiet_arg="-q"
foreach_configured_profile() {
ls -1 "$PROFILES" | egrep -v '(\.dpkg-(new|old|dist)|~)$' | \
while read profile; do
if [ -f "$PROFILES"/"$profile" ]; then
"$PARSER" "$@" -- "$PROFILES"/"$profile"
fi
done
}
load_configured_profiles() {
clear_cache_if_outdated
foreach_configured_profile $quiet_arg --write-cache --replace
}
load_configured_profiles_without_caching() {
foreach_configured_profile $quiet_arg --replace
}
configured_profile_names() {
foreach_configured_profile $quiet_arg -N 2>/dev/null | sort | grep -v '\^'
}
running_profile_names() {
cat "$AA_SFS"/profiles | sed -e "s/ (\(enforce\|complain\))$//" | sort
}
unload_profile() {
echo -n "$1" > "$AA_SFS"/.remove
}
clear_cache() {
find "$PROFILES"/cache -maxdepth 1 -type f -print0 | xargs -0 rm -f --
}
clear_cache_if_outdated() {
if [ -r "$PROFILES"/cache/.features ]; then
read CACHE_FEATURES < "$PROFILES"/cache/.features
read KERN_FEATURES < "$AA_SFS"/features
if [ "$KERN_FEATURES" != "$CACHE_FEATURES" ]; then
clear_cache
fi
fi
}